home *** CD-ROM | disk | FTP | other *** search
- /*
- File: PMSAMResources.cp
-
- Contains: xxx put contents here xxx
-
- Written by: Tim Harnett
-
- Copyright: © 1995 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- <1> 1/27/95 TMH new for dir system mapping table
- 1/25/95 TMH xxx put comment here xxx
-
- To Do:
- */
-
- #ifndef __RESOURCES__
- #include <Resources.h>
- #endif
-
- #ifndef __STRING__
- #include "String.h"
- #endif
-
-
- #ifndef __PMSAMResources__
- #include "PMSAMResources.h"
- #endif
-
- #pragma segment PMSAMResources
-
- //--------------------------------------------------------
- // C D i r E x t T y p e T a b l e I t e r a t o r
- //-----------------------------------------------------------------------------------
- CDirExtTypeTableIterator::CDirExtTypeTableIterator(short resID)
- {
-
- fCurrentIndex = 0;
- fNumOfExtTypes = 0;
- fCurrentOffset = 0;
-
- fDirExtTypeTable = (DirExtTypeTable **)Get1Resource('dxtt',resID);
-
-
- MoveHHi((Handle)fDirExtTypeTable);
- HLock((Handle)fDirExtTypeTable); // we assume its locked down.
-
- if( fDirExtTypeTable == 0 )
- return;
-
- fNumOfExtTypes = (*fDirExtTypeTable)->count;
-
- }
-
-
- //-----------------------------------------------------------------------------------
- DirExtTypeEntry* CDirExtTypeTableIterator::FirstDirExtType()
- {
- fCurrentIndex = 1;
- fCurrentOffset = 0;
- if( More() )
- return (DirExtTypeEntry*) (((char*)&(*fDirExtTypeTable)->dirExtTypeDesc) + fCurrentOffset);
-
- return 0;
-
- }
-
-
- //-----------------------------------------------------------------------------------
- DirExtTypeEntry* CDirExtTypeTableIterator::NextDirExtType()
- {
- fCurrentIndex++;
- if( More() ) {
- DirExtTypeEntry* dirExtType = (DirExtTypeEntry*) (((char*)&(*fDirExtTypeTable)->dirExtTypeDesc) + fCurrentOffset);
-
- fCurrentOffset += sizeof(OSType) + 4 + dirExtType->dirSysName[0]+1; // the size of each entry
-
- fCurrentOffset += (fCurrentOffset & 1); // align it.
-
- return (DirExtTypeEntry*) (((char*)&(*fDirExtTypeTable)->dirExtTypeDesc) + fCurrentOffset);
- }
-
- return 0;
- }
-